package gruppe5.dame.client.gui.Lobby;

import java.net.Socket;

/**
 * Netzwerkkommunikation in der Lobby
 * @author kramerse
 *
 */
public class NetzwerkLobby {

	/**
	 * Client Socket
	 */
	private Socket socket;
	
	/**
	 * GUI Element der Lobby
	 */
	private LobbyGUI lobby;
	
	/**
	 * Konstruktor
	 * @param socket
	 * @param lobby
	 */
	public NetzwerkLobby(Socket socket, LobbyGUI lobby) {
		this.socket=socket;
		this.lobby=lobby;
	}
	
	/**
	 * holt die Raum Liste vom Server
	 * Format:
	 * [[Benutzername][Beschreibung][Ping]]
	 * [[Benutzername][Beschreibung][Ping]]
	 * ...
	 * @return
	 */
	public Object[][] getRoomList() {
		// TODO Server
		
		//Testobjekt
		Object[][] data = {{null, null, null}};
		return data;
	}
	
	/**
	 * Gibt dem Lobby Element die Raum Liste
	 * Format:
	 * [[Benutzername][Beschreibung][Ping]]
	 * [[Benutzername][Beschreibung][Ping]]
	 * ...
	 * @param list
	 */
	public void setRoomList(Object[][] list) {
		//TODO Server
		lobby.setRoomList(list);
	}
	
	/**
	 * holt die UserList vom Sever
	 * Format:
	 * [Benutzername][Benutzername]...
	 * @return
	 */
	public String[] getUserList() {
		// TODO Server
		
		//Testobjekt
		String[] list = {"Benutzer 1"};
		return list;
	}
	
	/**
	 * Gibt dem Lobby Element die Userlist
	 * Format:
	 * [Benutzername][Benutzername]...
	 * @param
	 */
	public void setUserList(String[] namen) {
		//TODO Server
		lobby.setUserList(namen);
	}
	
	/**
	 * sendet die Einladung des Benutzers an den Server
	 * @param Name des eingeladenen Benutzer
	 */
	public void inviteUser(String name) {
		// TODO -> Server
	}

	/**
	 * sendet dem Server: Spieler will Spiel hosten
	 */
	public void hostGame() {
		// TODO -> Server
		
	}

	/**
	 * sendet dem Server: User will Spiel beitreten
	 * @param var Benutzername des Host
	 */
	public void joinGame(String var) {
		// TODO -> Server
	}

	/**
	 * sendet dem Server: Beuter nimmt die letzte Einladung an
	 * @param accept true = angenommen
	 */
	public void returnInvite(Boolean accept) {
		// TODO -> Server
	}
	
	/**
	 * Teilt dem Lobby Element mit: Spiel beginnt
	 */
	public void enterGame() {
		//TODO Server
		lobby.enterGame();
	}
}